package yl.hs.bmipfull.daos.system;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import yl.hs.bmipfull.daos.BaseDao;
import yl.hs.bmipfull.pojo.system.SiteMessageMainEntity;
import yl.hs.bmipfull.pojo.system.SiteMessageReceiptEntity;

import java.util.List;
import java.util.Map;

/**
 * 作用:  站内信息收件信息持久层接口<br/>
 * 创建时间: 2021年05月12日 16时32分18秒 <br/>
 *
 * @author 张凯
 */
@Repository
public interface ISiteMessageReceiptDao extends BaseDao<SiteMessageReceiptEntity> {
    /**
     * 查询所有站内信息收件信息
     *
     * @return 站内信息收件信息-List-SiteMessageReceiptEntity
     */
    List<SiteMessageReceiptEntity> queryAll();

    /**
     * 分页查询站内信息收件信息信息
     *
     * @param map 查询条件 {@link SiteMessageReceiptEntity}
     * @return 站内信息-List<{@link SiteMessageReceiptEntity}>
     */
    List<SiteMessageReceiptEntity> queryPage(@Param("map") Map<String, Object> map);

    /**
     * 根据查询条件统计数据数量
     *
     * @param query 查询条件
     * @return 数据数量
     */
    Integer queryCountByCondition(@Param("map")Map<String, Object> query);


    /**
     * 根据查询条件查询站内接受信息
     *
     * @param condition 查询条件
     * @return 站内信接受信息-List<{@link SiteMessageReceiptEntity}/>
     */
    List<SiteMessageReceiptEntity> queryByCondition(String condition);


    /**
     * 根据查询条件查询站内接受信息
     *
     * @param condition 查询条件
     * @return 站内信接受信息 {@link SiteMessageReceiptEntity}
     */
    SiteMessageReceiptEntity findByCondition(String condition);

    //edit - add: 谢景广 21-05-17 09：00

    /**
     * 根据用户编号和指定的编号统计消息数量
     *
     * @param userSN 用户编号
     * @param state  消息状态
     * @return
     */
    Integer queryUnReadCountByUserSN(String userSN, int state);
    SiteMessageReceiptEntity findByMsgSN(String receipterSN,String msgSN);
    List<SiteMessageReceiptEntity> getListBySenderSNState(String receipterSN, short state);
}